package com.iqiyi.pps.epg.api.server.iservice;

import com.iqiyi.mams.hedvig.http.mediatype.ExtendedMediaType;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

/**
 * Created by karkarrotxu on 2017/7/31.
 */
@Path("/record")
@Produces({ExtendedMediaType.APPLICATION_X_THRIFT})
public interface RecordApiService {
    @POST
    @Path("/plan/libraryList")
    @Produces(MediaType.APPLICATION_JSON)
    public String getPlanLibraryList(@FormParam("paramsObj") String paramsObj,
                             @FormParam("pageNo") Integer pageNo,
                             @FormParam("pageSize") Integer pageSize);
    @POST
    @Path("/plan/save")
    @Produces(MediaType.APPLICATION_JSON)
    public String doPlanSave(@FormParam("data") String dataString);

    @POST
    @Path("/plan/edit")
    @Produces(MediaType.APPLICATION_JSON)
    public String doPlanEdit(@FormParam("data") String dataString);
    @POST
    @Path("/plan/del")
    @Produces(MediaType.APPLICATION_JSON)
    public String doPlanDel(@FormParam("id") String entityId);

    @POST
    @Path("/plan/getById")
    @Produces(MediaType.APPLICATION_JSON)
    public String getRecordPlan(@FormParam("id") String entityId);


    @POST
    @Path("/channel/list")
    @Produces(MediaType.APPLICATION_JSON)
    public String getRecordChannelList(@FormParam("paramsObj") String paramsObj,
                                @FormParam("pageNo") Integer pageNo,
                                @FormParam("pageSize") Integer pageSize,@FormParam("dataMode")String dataMode);

    @POST
    @Path("/col/list")
    @Produces(MediaType.APPLICATION_JSON)
    public String getRecordColList(@FormParam("paramsObj") String paramsObj,
                                       @FormParam("pageNo") Integer pageNo,
                                       @FormParam("pageSize") Integer pageSize,@FormParam("dataMode")String dataMode);

    @POST
    @Path("/channel/save")
    @Produces(MediaType.APPLICATION_JSON)
    public String doChannelSave(@FormParam("data") String dataString);

    @POST
    @Path("/channel/edit")
    @Produces(MediaType.APPLICATION_JSON)
    public String doChannelEdit(@FormParam("data") String dataString);

    @POST
    @Path("/channel/del")
    @Produces(MediaType.APPLICATION_JSON)
    public String doChannelDel(@FormParam("id") String entityId);


    @POST
    @Path("/task/libraryList")
    @Produces(MediaType.APPLICATION_JSON)
    public String getTaskLibraryList(@FormParam("paramsObj") String paramsObj,
                                     @FormParam("pageNo") Integer pageNo,
                                     @FormParam("pageSize") Integer pageSize);

    @POST
    @Path("/task/edit")
    @Produces(MediaType.APPLICATION_JSON)
    public String doTaskEdit(@FormParam("data") String dataString);


    @POST
    @Path("/signal/libraryList")
    @Produces(MediaType.APPLICATION_JSON)
    public String getSignalLibraryList(@FormParam("paramsObj") String paramsObj,
                                     @FormParam("pageNo") Integer pageNo,
                                     @FormParam("pageSize") Integer pageSize);
    @POST
    @Path("/signal/save")
    @Produces(MediaType.APPLICATION_JSON)
    public String doSignalSave(@FormParam("data")String dataString);

    @POST
    @Path("/signal/del")
    @Produces(MediaType.APPLICATION_JSON)
    public String doSignalDel(@FormParam("id") String entityId);

    @POST
    @Path("/signal/getById")
    @Produces(MediaType.APPLICATION_JSON)
    public String getRecordSignal(@FormParam("id") String entityId);


    @POST
    @Path("/signal/edit")
    @Produces(MediaType.APPLICATION_JSON)
    public String doSignalEdit(@FormParam("data")String dataString);

    @POST
    @Path("/channel/signal/libraryList")
    @Produces(MediaType.APPLICATION_JSON)
    public String getChannelSignalLibraryList(@FormParam("paramsObj") String paramsObj,
                                       @FormParam("pageNo") Integer pageNo,
                                       @FormParam("pageSize") Integer pageSize);
    @POST
    @Path("/channel/signal/save")
    @Produces(MediaType.APPLICATION_JSON)
    public String doChannelSignalSave(@FormParam("data")String dataString);

    @POST
    @Path("/channel/signal/del")
    @Produces(MediaType.APPLICATION_JSON)
    public String doChannelSignalDel(@FormParam("id") String entityId);

    @POST
    @Path("/channel/signal/getById")
    @Produces(MediaType.APPLICATION_JSON)
    public String getRecordChannelSignal(@FormParam("id") String entityId);


    @POST
    @Path("/channel/signal/edit")
    @Produces(MediaType.APPLICATION_JSON)
    public String doChannelSignalEdit(@FormParam("data")String dataString);


    @POST
    @Path("/channel/signal/start")
    @Produces(MediaType.APPLICATION_JSON)
    public String doChannelSignalStart(@FormParam("id") String entityId);

    @POST
    @Path("/channel/signal/stop")
    @Produces(MediaType.APPLICATION_JSON)
    public String doChannelSignalStop(@FormParam("id") String entityId);

    @POST
    @Path("/channelSignal/tableList")
    @Produces(MediaType.APPLICATION_JSON)
    public String getRecordChannelSignalTableList(@FormParam("paramsObj") String paramsObj,
                                       @FormParam("pageNo") Integer pageNo,
                                       @FormParam("pageSize") Integer pageSize);


    @POST
    @Path("/video/updateStatus")
    @Produces(MediaType.APPLICATION_JSON)
    public String updateRecordVideoStatus(@FormParam("signalId") Long signalId,
                                          @FormParam("taskId") Long taskId,
                                          @FormParam("videoId") Long videoId,
                                          @FormParam("videoStatus") Integer videoStatus);


    @POST
    @Path("/task/updateStatus")
    @Produces(MediaType.APPLICATION_JSON)
    public String updateRecordTaskStatus( @FormParam("taskId") Long taskId,
                                          @FormParam("taskStatus") Integer videoStatus);


}
